import { ObjectOnlyPushSet } from '../../../../../../../../../../../../global/Func/ObjectOnlyPushSet_operate';
import { prop_cur_req_user_identity } from '../../../../../../../../../Classes/cla_req_cur_headers_info';
import { get_mdb_user_uni_float_identity_type_active } from '../../../DataDefine/get_mdb';
import { cur_user_uni_float_info } from '../Classes/cla_cur_user_uni_float_info';
import { req_info_cur_user_get_all_active_uni_float } from '../Classes/cla_req_info_cur_user_get_all_active_uni_float';
import { res_send_cur_user_all_active_uni_float } from '../Classes/cla_res_send_cur_user_all_active_uni_float';
import { extend_cur_user_uni_float_full_info } from './extend_cur_user_uni_float_full_info';

/**
 * 获取 当前 用户 所有 的 活动 浮动元素 信息
 * @param cur_req_get_all_active_uni_float_infos
 * @returns
 */
export async function get_cur_user_all_active_uni_float_infos(
  cur_req_get_all_active_uni_float_infos: req_info_cur_user_get_all_active_uni_float
) {
  let ret_info = new res_send_cur_user_all_active_uni_float();

  /**
   * 当前 用户 浮动元素 活动 表
   */
  let mdb_cur_user_uni_float_active =
    get_mdb_user_uni_float_identity_type_active(
      cur_req_get_all_active_uni_float_infos[prop_cur_req_user_identity]
    );

  /**
   * 获取 所有 元素 信息
   */
  let cur_user_all_uni_float_id_info = await mdb_cur_user_uni_float_active
    .find({})
    .toArray();

  /**
   * 添加 主体 骨架 构建
   */
  for (const cur_uni_float_info of cur_user_all_uni_float_id_info) {
    ObjectOnlyPushSet(
      ret_info,
      cur_uni_float_info.id,
      new cur_user_uni_float_info(
        cur_uni_float_info.id,
        cur_uni_float_info.is_using
      )
    );
  }

  /**
   * 填充 信息
   */
  await extend_cur_user_uni_float_full_info(
    cur_req_get_all_active_uni_float_infos[prop_cur_req_user_identity],
    ret_info
  );

  return ret_info;
}
